fix(cursor): discover and preserve native slash commands - #10796
Conversation
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The PR adds a new Cursor command-catalog capability and changes production prompt assembly and asynchronous workspace snapshot behavior. Although focused tests cover the main flows, the cross-component, user-facing runtime change warrants human review. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughCursor now captures ACP slash commands per workspace, merges them into provider snapshots, preserves local skills, and avoids appending runtime instructions to native slash-command prompts. New tests cover command timing, isolation, replacement, and clearing. ChangesCursor command catalog
Priority: ➖ Normal — Schedule the Cursor adapter change because it restores native slash-command discovery, invocation, and workspace-specific autocomplete behavior. Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to Cursor native slash commands are now preserved for invocation and surfaced for autocomplete per workspace while retaining local skills. The covered catalog, isolation, and timing behavior presents no remaining merge-blocking risk. Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
What Changed
Cursor advertises native slash commands such as
/goalover ACP, but T3 ignores that catalog. T3 also appends a runtime-info text block that prevents Cursor from parsing the original command correctly.Publish
available_commands_updatein the existing workspace catalog and preserve leading slash prompts when sending them to Cursor. Keep local skills and T3's/compactentry, replace withdrawn commands, and isolate catalogs by workspace and provider instance. The workspace cache is bounded to 16 entries.Command dispatch does not wait for catalog discovery. Cursor can publish metadata after session startup; a first-turn command must still reach its native parser unchanged. Autocomplete gains the native entries once the session advertises them.
Why
Cursor CLI
2026.09.02-c22c1a3joins ACP text blocks before resolving a leading slash command. Appending<runtime_info>can turn that context into command arguments or prevent a match. Ordinary prompts retain the existing runtime context.Related to the capability and invocation work in discussion #6766. This is scoped to the existing Cursor adapter, with no client component or contract changes.
Verification
061543e9. A separate regression verifies dispatch before command metadata arrives.git diff --checkpass./copy-request-idreturns its native response without inference. A/goaltask repairs a Python function and passes seven independently checked cases; the test file is unchanged./goalentry and inserts it on selection.Longer live sequences can still return
Error: RetriableError: WritableIterable is closed. The same workload reproduces this with direct Cursor ACP, without T3. That existing Cursor failure is outside this fix; this PR does not claim full CLI goal-loop parity.UI Changes
Both captures use Cursor Auto after session startup. The baseline's transport diagnostic is the separate failure described above.
8-second command selection recording
Checklist
Model: GPT-6. Harness: Codex.
Summary by CodeRabbit